# -*- coding: utf-8 -*-
# autor: Joao Guerreiro
# data: 14 de Outubro de 2014
# obs: primeiro programa realizado em Python
#

print "hello world"

print type(1),type(3.4), type((3+3j)+2)
print type("treta"),type(True and False)

a='1'
b="Uma"
print type(a), type(b)
print type([1,2,3,[2,3]]), type((1,2,3))

class Teste:
    pass

print type(Teste)

obj=Teste()
print type(obj)

def func():
    return 3

print type(func)

print type(range(0,10))
print type(xrange(0,10))
print type(a>10 if 10 else 2)
print type(a) == type("string") if "uma string" else "nao sei"



#expressao que soma complexos com numeros reais
print type((3j+4.5))
#conclusao: gera um numero complexo



#exemplos do guia da aula
print " "

#exemplonum.py
import decimal
import mpmath
import sys
a=99 #int
print sys.maxint #maximo inteiro
u= 99.76 #float
v=2+2j #complex
z=u+v #soma de um complex com float
print z, z.real, z.imag #resultado no ecra
# um decimal
b =decimal.Decimal(.42347529760276257652678257696)
w = mpmath.mpf(4.23331) #precisao arbitraria


print " "
#exemploseq.py
s1="The 'Portuguese' Inquisition"  #uma string
s2="tRoiKa"                        # mais uma string
s3=s1+' '+s2                       #concatenacao
l1=[1,2,"lista",[3,4,5.33]]        #uma lista
a= l1[0]+l1[1]+l1[3][1]             #soma de valores
t1=(1,2,"tuplo")                    # os tuplos sao imutaveis
print t1[1]

print " "
#exemplocontrolo1.py
if 1>0:
    print "OK"
if 1.2 == 33:
    print "NO"
else:
    print "OK"
    
expr1=True or False
expr2=True and True
if expr1:
    if expr2:
        print"OK"
    else:
        print"NOT"
else:
    print "NOT"
    
    
